探索白葡萄酒的化学成分对酒品质的影响

# 设置样式
theme_set(theme_minimal(5))

数据处理

加载数据

##   X fixed.acidity volatile.acidity citric.acid residual.sugar chlorides
## 1 1           7.0             0.27        0.36           20.7     0.045
## 2 2           6.3             0.30        0.34            1.6     0.049
## 3 3           8.1             0.28        0.40            6.9     0.050
## 4 4           7.2             0.23        0.32            8.5     0.058
## 5 5           7.2             0.23        0.32            8.5     0.058
## 6 6           8.1             0.28        0.40            6.9     0.050
##   free.sulfur.dioxide total.sulfur.dioxide density   pH sulphates alcohol
## 1                  45                  170  1.0010 3.00      0.45     8.8
## 2                  14                  132  0.9940 3.30      0.49     9.5
## 3                  30                   97  0.9951 3.26      0.44    10.1
## 4                  47                  186  0.9956 3.19      0.40     9.9
## 5                  47                  186  0.9956 3.19      0.40     9.9
## 6                  30                   97  0.9951 3.26      0.44    10.1
##   quality
## 1       6
## 2       6
## 3       6
## 4       6
## 5       6
## 6       6

查看字段

names(data_white_wine_origin)
##  [1] "X"                    "fixed.acidity"        "volatile.acidity"    
##  [4] "citric.acid"          "residual.sugar"       "chlorides"           
##  [7] "free.sulfur.dioxide"  "total.sulfur.dioxide" "density"             
## [10] "pH"                   "sulphates"            "alcohol"             
## [13] "quality"

单变量绘图选择

绘制各直方图

## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

由图可知: 各变量几乎都服从正态分布

查看各变量统计值

summary(data_white_wine_origin)
##        X        fixed.acidity    volatile.acidity  citric.acid    
##  Min.   :   1   Min.   : 3.800   Min.   :0.0800   Min.   :0.0000  
##  1st Qu.:1225   1st Qu.: 6.300   1st Qu.:0.2100   1st Qu.:0.2700  
##  Median :2450   Median : 6.800   Median :0.2600   Median :0.3200  
##  Mean   :2450   Mean   : 6.855   Mean   :0.2782   Mean   :0.3342  
##  3rd Qu.:3674   3rd Qu.: 7.300   3rd Qu.:0.3200   3rd Qu.:0.3900  
##  Max.   :4898   Max.   :14.200   Max.   :1.1000   Max.   :1.6600  
##  residual.sugar     chlorides       free.sulfur.dioxide
##  Min.   : 0.600   Min.   :0.00900   Min.   :  2.00     
##  1st Qu.: 1.700   1st Qu.:0.03600   1st Qu.: 23.00     
##  Median : 5.200   Median :0.04300   Median : 34.00     
##  Mean   : 6.391   Mean   :0.04577   Mean   : 35.31     
##  3rd Qu.: 9.900   3rd Qu.:0.05000   3rd Qu.: 46.00     
##  Max.   :65.800   Max.   :0.34600   Max.   :289.00     
##  total.sulfur.dioxide    density             pH          sulphates     
##  Min.   :  9.0        Min.   :0.9871   Min.   :2.720   Min.   :0.2200  
##  1st Qu.:108.0        1st Qu.:0.9917   1st Qu.:3.090   1st Qu.:0.4100  
##  Median :134.0        Median :0.9937   Median :3.180   Median :0.4700  
##  Mean   :138.4        Mean   :0.9940   Mean   :3.188   Mean   :0.4898  
##  3rd Qu.:167.0        3rd Qu.:0.9961   3rd Qu.:3.280   3rd Qu.:0.5500  
##  Max.   :440.0        Max.   :1.0390   Max.   :3.820   Max.   :1.0800  
##     alcohol         quality     
##  Min.   : 8.00   Min.   :3.000  
##  1st Qu.: 9.50   1st Qu.:5.000  
##  Median :10.40   Median :6.000  
##  Mean   :10.51   Mean   :5.878  
##  3rd Qu.:11.40   3rd Qu.:6.000  
##  Max.   :14.20   Max.   :9.000

创建一个新的变量 is.sweet

# 创建变量记录每只酒是否是甜的,超过45克/升的葡萄酒被认为是甜的
data_white_wine_origin$is.sweet <- ifelse(data_white_wine_origin$residual.sugar>45,1,0)
data_white_wine_origin$is.sweet <- factor(data_white_wine_origin$is.sweet)

看下有多少甜的

summary(data_white_wine_origin$is.sweet)
##    0    1 
## 4897    1

创建一个新的变量 总酸度

data_white_wine_origin$total.acidity <- data_white_wine_origin$fixed.acidity+data_white_wine_origin$volatile.acidity+data_white_wine_origin$citric.acid
summary(data_white_wine_origin$total.acidity)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   4.130   6.890   7.405   7.467   7.960  14.960

将质量变量设置为离散

data_white_wine_origin$quality <- factor(data_white_wine_origin$quality)

查看质量分布

由图可知: 1. 白葡萄酒数据集的“质量”分布大致遵循正态分布; 2. 大量数据集中在 5,6,7 分,其中6分的数量最多,数量超过 2000; 3. 最低的评分为 3 分,最高评分为 8 分

单变量分析

你的数据集结构是什么?

数据集包含 4898 种白葡萄酒,以及 11 个关于酒的化学成分变量,分别为: fixed.acidity:固定酸度 volatile.acidity:挥发性酸度 citric.acid:柠檬酸 residual.sugar:残糖 chlorides:氯化物 free.sulfur.dioxide:游离二氧化硫 total.sulfur.dioxide:二氧化硫总量 (mg / dm^3) density:密度(mg / cm^3) pH:pH值 sulphates:硫酸盐(g / dm^3) alcohol:醇/酒精(% by volume) quality:质量:0-10分 is.sweet:口感是否甜 total.acidity:总酸度 = fixed.acidity + volatile.acidity + citric.acid

你的数据集内感兴趣的主要特性有哪些?

酸:total.acidity 甜:residual.sugar 酒精:alcohol 质量:quality

你认为数据集内哪些其他特征可以帮助你探索兴趣特点?

酸碱度:pH 密度:density

根据数据集内已有变量,你是否创建了任何新变量?

  1. is.sweet:是否为甜的酒
  2. total.acidity:总酸度

在已经探究的特性中,是否存在任何异常分布?你是否对数据进行一些操作,如清洁、调整或改变数据的形式?如果是,你为什么会这样做?

看起来都是正态分布

双变量绘图选择

相关性计算

## Warning in ggcorr(data_white_wine_origin[, ], label = TRUE, label_size
## = 3, : data in column(s) 'quality', 'is.sweet' are not numeric and were
## ignored

由图可知: 正相关 1. total.acidity 与 fixed.acidity:0.99 2. redidual.sugar 与 density :0.84 3. free.sulfur.dioxide 与 total.sulfur.dioxide:0.62 4. total.sulfur.dioxide 与 density :0.53

负相关 1. density 与 alcohol:-0.78

探索 total.acidity 与 fixed.acidity 的关系

由图可知: 总酸度与固定酸度呈现强正相关,随fixed.acidity的增大,total.acidity 也随之提高

探索 alcohol 与 quality 的关系

由图可知 1. 质量低于 5 的,随着质量的提升,酒精含量降低 2. 质量高于 5 的,随着质量的提升,酒精含量也相对更高 数据集中没有 1,2,10的质量等级,并且质量为 3,4,9的数据点很少,所以结论可能有较大误差

探索 residual.sugar 与 quality 的关系

由图可知 随着质量的提升,残糖含量有一些变化,但没有明显的线性关系

探索 total.acidity 与 quality 的关系

由图可知 1. 随着质量的提升,总酸度有下降,但不是特别明显 2. 在质量为 8、9 的时候,总酸度随质量增加而略微有增加 考虑 质量为 9的数据点过少,不能由此推断结论

探索 total.sulfur.dioxide 与 quality 的关系

由图可知 随着质量的提升,总二氧化硫有波动,但没有明显的线性关系

探索 density 与 quality 的关系

ggplot(aes(x = quality, y = density), 
      data = data_white_wine_origin)  + 
   # 设置透明度来观察数据点
  geom_boxplot(alpha = 0.1,color='orange') + 
  # 设置抖动来添加噪声,并设置 α 透明度
  geom_jitter(alpha = 0.1) + 
  stat_summary(fun.y = mean, geom = 'point', color = "red")

由图可知: 1. 密度(density) 的范围基本上在0.99-1.00之间,各种酒之间的差别非常非常小 2. 密度和质量呈现弱的负相关关系

探索 residual.sugar 与 density 的关系

由图可知: 残糖和密度之间很明显的线性关系,随着残糖含量的提升,密度将会变大

探索 total.sulfur.dioxide 与 density 的关系

由图可知: 密度与二氧化硫总量正相关

探索 density 与 alcohol 的关系

## Warning: Removed 3 rows containing non-finite values (stat_smooth).
## Warning: Removed 3 rows containing missing values (geom_point).

由图可知: 酒精与白葡萄酒的密度成明显的负相关,随着白葡萄的密度增大,酒精含量反而下降了。

探索 pH 与 density 的关系

由图可知: pH与密度完全不相关

探索 total.acidity 与 density 的关系

由图可知: 总酸度与密度呈现弱相关度越高,总酸度越大,密度随着越大

残糖与酒精

由图可知: 残糖与酒精呈现弱的负相关

alcohol 和 total.acidity

由图可知: 1. 酒精含量与总酸度之间不相关性, 2. 酒精含量的范围看起来有点像个离散的量,猜测:可能是因为检测仪器的精度导致

alcohol 和 total.sulfur.dioxide

由图可知: 酒精和二氧化硫总量呈现微弱的负相关

pH 与alcohol

由图可知: pH与酒精含量也没啥关系

双变量分析

探讨你在这部分探究中观察到的一些关系。这些感兴趣的特性与数据集内其他特性有什么区别?

这部分主要根据变量之间的相关性和自己的直觉选择一些变量进行观察: 1. 可以看出残糖和密度之间很明显的线性关系,随着残糖含量的提升,密度将会变大,可能会造成口感上更粘稠和厚重。 2.酒精和密度却成负相关,可能因为酒精比水的密度小;

你是否观察到主要特性与其他特性之间的有趣关系?

密度与二氧化硫总量正相关 酒精与白葡萄酒的密度成明显的负相关,随着白葡萄的密度增大,酒精含量反而下降了。 残糖与酒精呈现弱的负相关

你发现最强的关系是什么?

最强的关系是residual.sugar 和 density的关系,从图中可以看出,两者正相关关系很明显,且相关系数为 0.84 .

多变量绘图选择

考虑在双变量分析中有明显相关性的两组变量散点图上添加颜色来表示酒的质量来观察三者间的关系

探索 alcohol、density 和 quality之间的关系

## Warning in pal_name(palette, type): Unknown palette PuQr

由图可知: 1. 当酒精含量(alcohol)一定时,密度(density)越高,quality的颜色越深,也就是说质量更高 2. 当密度一定时,酒精含量越高,没有很明显的质量变化趋势

探索 residual.sugar,density,和quality 的关系

## Warning in pal_name(palette, type): Unknown palette PuQr

由图可知: 1. 在残糖含量(residual.sugar))一定时,密度(density)越高,quality的颜色越深,也就是说质量更高 2. 当密度一定时,残糖含量(residual.sugar)越高,颜色越浅,也就是质量越低

多变量分析

探讨你在这部分探究中观察到的一些关系。通过观察感兴趣的特性,是否存在相互促进的特性?

  1. 质量一定时,酒精含量与酒的质量没有明显的相关性关系
  2. 质量一定时,残糖含量越高的酒的质量却越低
  3. 酒精和残糖含量一定的时候,密度越高,酒的相对质量越高

这些特性之间是否存在有趣或惊人的联系呢?

不知道

选项:你是否创建过数据集的任何模型?讨论你模型的优缺点。

暂时没有。

定稿图与总结

绘图一

描述一

  1. 白葡萄酒数据集的“质量”分布大致遵循正态分布;
  2. 大量数据集中在 5,6,7 分,其中6分的数量最多,数量超过 2000;
  3. 最低的评分为 3 分,最高评分为 8 分。

绘图二

描述二

这部分主要根据变量之间的相关性和自己的直觉选择一些变量进行观察: 1. 可以看出残糖和密度之间很明显的线性关系,随着残糖含量的提升,密度将会变大,可能会造成口感上更粘稠和厚重。 2.酒精和密度却成负相关,可能因为酒精比水的密度小

绘图三

## Warning in pal_name(palette, type): Unknown palette PuQr

## Warning in pal_name(palette, type): Unknown palette PuQr

描述三

  1. 质量一定时,酒精含量与酒的质量没有明显的相关性关系
  2. 质量一定时,残糖含量越高的酒的质量却越低
  3. 酒精和残糖含量一定的时候,随着密度越高,酒的相对质量也越高

反思

预期与结果

起初的预期中,一定会有一些客观化学参数会影响葡萄酒的质量(quality),但实际的探索结果中没有发现哪一个指标因素与质量有直接的关系; 猜测: 1. 评分的因素不完全是口感,而数据集中的因素几乎全与口感相关; 2. 数据集中提供的指标并不完整

所以在数据集的分析中逐渐抛开了本来预期的方向,转而寻找各化学参数之间是否有存在什么关系,以及这些化学参数的组合关系会对质量产生什么样的影响。

在分析中发现酒的质量与密度存在

遇到的问题

  1. 在R的各种方法使用过程中,并不是特别熟悉,故而有时候并不能很快找到最适合的表现方式,这部分需要再多熟悉。
  2. 起初过于禁锢于找到某一个变量与质量之间的关系,当没有发现这个关系的时候有点束手无措
  3. 看到图形,好像只能看到其中的某一点特征,很难从一张图上找到多个分析的方向

对未来工作的提议

  1. 起初有个预期能帮助我们明确第一步的行动,但不要过于禁锢于这个方向,当预期的结果没有出现时,应该立即转换方向,发散思维
  2. 需要练习从一张图上找到多个分析方向的能力